package com.rybbaby.tss.core.consts;

/**
 * @description 通用常量
 * 
 * @author 谢进伟
 * 
 * @createDate 2016-1-31 下午4:04:21
 */
public class CommonConsts {
	
	/** 不包括时分秒的时间格式正则，形如：2016-01-25、2016/01/25 **/
	public static final String SHORTDATEREGEX = "^\\d{4}[/|-]\\d{2}[/|-]\\d{2}$";
	/** 包含时分秒的时间格式正则，形如：2016-01-25 23:52:33、2016/01/25 23:52:33 **/
	public static final String LONGDATEREGEX = "^\\d{4}[/|-]\\d{2}[/|-]\\d{2}\\s{1}\\d{2}:\\d{2}:\\d{2}$";
	/** 包括毫秒的时间格式正则，形如：2016-01-26 00:00:07.031、2016/01/26 00:00:07.031 **/
	public static final String DATETIMEREGEX = "^\\d{4}[/|-]\\d{2}[/|-]\\d{2}\\s{1}\\d{2}:\\d{2}:\\d{2}(:\\d{1,2})?(.\\d+)?$";
	/** 手机号正则 确保美国电话号码10位数,可能从1 + 1或1 -;应该丢弃区号可能分隔()&部分,可以分隔.或- **/
	public static final String PHONENUMBERREGEX = "^(?:(1\\-?)|(\\+1 ?))?\\(?(\\d{3})[\\)\\-.]?(\\d{3})[\\-\\.]?(\\d{4})$";
	/** url正则 **/
	public static final String URLREGEX = "^" +
	// protocol identifier
	"(?:(?:https?|ftp)://)" +
	// user:pass authentication
	"(?:\\S+(?::\\S*)?@)?" + "(?:" +
	// IP address exclusion
	// private & local networks
	"(?!10(?:\\.\\d{1,3}){3})" + "(?!127(?:\\.\\d{1,3}){3})" + "(?!169\\.254(?:\\.\\d{1,3}){2})" + "(?!192\\.168(?:\\.\\d{1,3}){2})" + "(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})" +
	// IP address dotted notation octets
	// excludes loopback network 0.0.0.0
	// excludes reserved space >= 224.0.0.0
	// excludes network & broacast addresses
	// (first & last IP address of each class)
	"(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])" + "(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}" + "(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))" + "|" +
	// host name
	"(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)" +
	// domain name
	"(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*" +
	// TLD identifier
	"(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))" + ")" +
	// port number
	"(?::\\d{2,5})?" +
	// resource path
	"(?:/[^\\s]*)?" + "$";
}
